use json;
use std::fs::File;
use std::io::Read;
use std::path::Path;
pub fn parse_conf() -> Vec<String> {
    // 读取默认路径 的conf.json
    let path = Path::new("./conf/conf.json");
    let mut f = File::open(path).expect("打开文件失败！");
    let mut content = String::new();
    // 将文件的字符串全部读取出来  存入到 content 中
    f.read_to_string(&mut content).expect("读取文件内容失败！");
    let json_obj = json::parse(&content).expect("解析json失败");
    let mut flag: i32 = 0;
    let mut v = vec![];
    // 遍历 json config 并添加如 vec 中
    while !json_obj["urls"][flag as usize].to_string().eq("null") {
        // println!("{}", json_obj["urls"][flag as usize]);
        v.insert(flag as usize, json_obj["urls"][flag as usize].to_string());
        flag = flag + 1;
    }
    v
}

// 返回base path 若没有 返回（./download）
pub fn parse_base_save_path() -> String {
    // 读取默认路径 的conf.json
    let path = Path::new("./conf/conf.json");
    let mut f = File::open(path).expect("打开文件失败！");
    let mut content = String::new();
    // 将文件的字符串全部读取出来  存入到 content 中
    f.read_to_string(&mut content).expect("读取文件内容失败！");
    let json_obj = json::parse(&content).expect("解析json失败");
    let mut base_path: String = json_obj["save_base_path"].to_string();
    if !base_path.as_bytes()[base_path.len() - 1]
        .to_string()
        .eq("/")
    {
        base_path.push('/');
    }
    if base_path.eq("null") || base_path.eq("") {
        base_path = String::from("./download/");
    }
    // println!("base path = {}",base_path);
    base_path
}

// 解析安装地址 默认为 （./install）
pub fn parse_install_path() -> String {
    // 读取默认路径 的conf.json
    let path = Path::new("./conf/conf.json");
    let mut f = File::open(path).expect("打开文件失败！");
    let mut content = String::new();
    // 将文件的字符串全部读取出来  存入到 content 中
    f.read_to_string(&mut content).expect("读取文件内容失败！");
    let json_obj = json::parse(&content).expect("解析json失败");
    let mut install_path: String = json_obj["install_path"].to_string();
    if !install_path.as_bytes()[install_path.len() - 1]
        .to_string()
        .eq("/")
    {
        install_path.push('/');
    };
    if install_path.eq("null") || install_path.eq("") {
        install_path = String::from("./install/");
    }
    install_path
}
